Abbreviations used herein:                TDM Time Division Multiplexing        IP Internet Protocol        DSP Digital Signal Processor        LB Load Balancing        CCD Clear Channel Codec        ATM Asynchronous Transfer Mode        AAL ATM adaptation layer        ITU-T International Telecommunication Union Telecommunication Standardization Sector        AAL2 One of the four AALs recommended by the ITU-T.        
As used herein, the term “voice gateway” means a device that converts voice TDM signals to packets that can be transmitted over a packet network. The term “call agent” means a device that sets up voice and data calls on voice gateways.
A voice gateway converts TDM voice signals into IP packets and it converts IP packets into TDM signals. A call agent communicates with a voice gateway to set up a call using a protocol such as the standard protocols know as MGCP or H.248. This typically is done over an IP network.
Voice gateways typically include a plurality of DSPs. The DSPs are programmed to terminate TDM voice calls. The DSPs compress the raw voice data into IP or ATM packets and decompress packets to TDM data. A DSP compresses a TDM data stream using a codec. The particular codec that is used for a particular call is typically negotiated between the gateways at the two ends of the call.
One DSP can generally handle a plurality of voice channels and a voice gateway generally includes a number of DSPs. The amount of resources used by a DSP to handle a particular call depends upon the particular codec used to handle call. Thus, the number of channels that a DSP can handle depends on factors such as the complexity of the codec used for each of the calls on that DSP.
There are a relatively large number of different codecs in widespread use. Each different codec has particular advantages and particular disadvantages. Generally, the different codecs use different amounts of resources. The particular codec which a system assigns to handle a particular call depends on various factors including the amount of resources available at the time the call is received.
When a channel is opened, the originating side examines the resources available and it chooses a particular DSP and a particular channel on the chosen DSP. The originating side also chooses a list of codecs. One of the reasons that a list of codecs is chosen by the originating side is to maximize the probability that during call set up, a matching codec can be found at the other end of the call. The codecs chosen by the originating side are all codecs that can operate with the resources available on the originating end. This list of codecs is frequently referred to as a profile. At call set up time the DSP at the originating side is set up to use any one of the codecs in the profile.
The originating side sends the profile (that is, the list) of codecs to the terminating side. The terminating side selects one particular codec from the list received. The selection is done according to a pre-established algorithm or in accordance with various pre-configured settings. For example the terminating side can be programmed to choose a codec that minimizes the packet bandwidth of calls or it can be programmed to choose a codec that maximizes the number of calls that can be handled. Generally a codec that minimizes bandwidth is a relatively complex codec and, hence, if a complex codec is chosen, the number of calls that can be handled is generally less than if a simple codec is chosen.
After the originating side receives an indication from the terminating side concerning which codec in the profile should be used, the call proceeds using the selected codec.
When a channel switches from voice to fax, the codec used generally must be changed. In the prior art this change was accomplished by closing and then re-opening the channel with the new codec. Closing and opening a channel takes time and requires processing cycles on the host microprocessor that controls the DSPs. If a channel must be closed and opened in order to change the codec being used, precious time is lost. Furthermore, sensitive applications such as a fax transmission could fail due to the time delay involved.